import os
import shutil
from datetime import datetime, timedelta


def copy_media_files():
    """
    将视频文件复制指定份数，每份文件名中的时间部分递增10秒
    """
    # 获取用户输入的源目录和文件名
    source_dir = input("请输入源文件目录路径: ").strip()
    
    source_filename = input("请输入源文件名: ").strip()
    
    source_path = os.path.join(source_dir, source_filename)

    # 检查源文件是否存在
    if not os.path.exists(source_path):
        print(f"源文件不存在: {source_path}")
        return

    # 获取用户输入的复制份数
    try:
        num_copies = int(input("请输入要复制的文件数量: "))
        if num_copies <= 0:
            print("复制数量必须大于0")
            return
    except ValueError:
        print("请输入有效的数字")
        return

    # 解析文件名中的时间部分
    parts = source_filename.split('-')
    if len(parts) < 2:
        print("文件名格式不正确，应为: PREFIX-TIMESTAMP-SUFFIX.EXT")
        return
        
    time_str = parts[1]  # 提取时间戳部分
    try:
        base_time = datetime.strptime(time_str, '%Y%m%d%H%M%S')
    except ValueError:
        print("时间戳格式不正确，应为: YYYYMMDDHHMMSS")
        return

    # 复制指定份数的文件
    for i in range(1, num_copies + 1):
        # 计算新时间（每次增加10秒）
        new_time = base_time + timedelta(seconds=i * 10)
        new_time_str = new_time.strftime('%Y%m%d%H%M%S')

        # 构造新文件名
        new_filename = f'{parts[0]}-{new_time_str}-{parts[2]}' if len(parts) >= 3 else f'{parts[0]}-{new_time_str}.mp4'
        dest_path = os.path.join(source_dir, new_filename)

        # 复制文件
        try:
            shutil.copy2(source_path, dest_path)
            print(f"已复制 {i}/{num_copies}: {new_filename}")
        except Exception as e:
            print(f"复制失败 {new_filename}: {str(e)}")

    print(f"所有{num_copies}个文件复制完成")


if __name__ == "__main__":
    copy_media_files()